<!DOCTYPE html>
<html lang="en">
  <head>
    
      <title>python2 和 python3的区别 :: Rennan Blog — We can exchange and study together</title>
    
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1">
<meta name="description" content="python3 经常被称为python 3000 或者 py3k。对于python的早期版本这是一个比较大的提升 python3的改变主要在一下几个方面 print函数 在python2中使用的是print语句 而在python3中使用的是print函数 python2
 print &amp;quot;china&amp;quot;python3
 print(&amp;quot;china&amp;quot;)Unicode python2 中字符串类型有：str unicode python3 中字符串类型有：str byte
python3
&amp;gt;&amp;gt;&amp;gt; 中国 = &#39;china&#39; &amp;gt;&amp;gt;&amp;gt;print(中国) chinapython2
&amp;gt;&amp;gt;&amp;gt; str = &amp;quot;我爱北京天安门&amp;quot;&amp;gt;&amp;gt;&amp;gt; str&#39;\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8&#39;&amp;gt;&amp;gt;&amp;gt; str = u&amp;quot;我爱北京天安门&amp;quot;&amp;gt;&amp;gt;&amp;gt; stru&#39;\u6211\u7231\u5317\u4eac\u5929\u5b89\u95e8&#39;异常 python3中的处理异常也发生了改变 python中使用了as来作为关键词 except exc, e 改为 except exc as e
在python2中所有异常类型都可以直接抛出 但是在python3中只有继承了BaseException的对象抛出 python2异常在代码中除了表示程序错误 还做一些控制结构做的事，python3 只有在错误发生的情况下才能去用异常捕获语句来处理,让设计者更加的专注的设计程序
xrange python2中使用的是xrange函数 python3中使用的是range函数
相同点： 倆者在用法上完全相同 但是xrange他返回的是一个生成器 range返回的是一个可迭代对象
倆者在生成很大的序列时性能的差异就会很明显的显示出来 因为range生成的是一个可迭代对象 一上来就得开辟出一大片内存空间 而xrange不会直接 生成一个可迭代对象 二十每次调用返回一个值"/>
<meta name="keywords" content=""/>
<meta name="robots" content="noodp"/>
<link rel="canonical" href="/my_blog/post/py/" />





<link rel="stylesheet" href="/my_blog/assets/style.css">


<link rel="stylesheet" href="/my_blog/style.css">


<link rel="apple-touch-icon-precomposed" sizes="144x144" href="/my_blog/img/apple-touch-icon-144-precomposed.png">
<link rel="shortcut icon" href="/my_blog/img/favicon.png">


<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="python2 和 python3的区别"/>
<meta name="twitter:description" content="p2和p3的部分改动"/>



<meta property="og:title" content="python2 和 python3的区别" />
<meta property="og:description" content="p2和p3的部分改动" />
<meta property="og:type" content="article" />
<meta property="og:url" content="/my_blog/post/py/" />
<meta property="article:published_time" content="2019-06-05T00:00:00+00:00" />
<meta property="article:modified_time" content="2019-06-05T00:00:00+00:00" /><meta property="og:site_name" content="Rennan Blog" />






  </head>
  <body class="">
    <div class="container">
      <header class="header">
  <span class="header__inner">
    <a href="/my_blog/hello/" class="logo" style="text-decoration: none;">
  
    <span class="logo__mark"><svg xmlns="http://www.w3.org/2000/svg" class="greater-icon" viewBox="0 0 44 44">
  <path fill="none" d="M15 8l14.729 14.382L15 35.367"/>
</svg>
</span>
    <span class="logo__text">Welcome To MyBlog</span>
    <span class="logo__cursor"></span>
  
</a>

    <span class="header__right">
      
        <nav class="menu">
  <ul class="menu__inner menu__inner--desktop">
    
      
        
          <li><a href="/my_blog/resume">resume</a></li>
        
      
        
          <li><a href="/my_blog/vue">vue</a></li>
        
      
      
    
  </ul>

  <ul class="menu__inner menu__inner--mobile">
    
      
        <li><a href="/my_blog/resume">resume</a></li>
      
    
      
        <li><a href="/my_blog/vue">vue</a></li>
      
    
  </ul>
</nav>

        <span class="menu-trigger">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
            <path d="M0 0h24v24H0z" fill="none"/>
            <path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
          </svg>
        </span>
      
      <span class="theme-toggle">
        <svg class="theme-toggler" width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
  <path d="M22 41C32.4934 41 41 32.4934 41 22C41 11.5066 32.4934 3 22
  3C11.5066 3 3 11.5066 3 22C3 32.4934 11.5066 41 22 41ZM7 22C7
  13.7157 13.7157 7 22 7V37C13.7157 37 7 30.2843 7 22Z"/>
</svg>

      </span>
    </span>
  </span>
</header>


      <div class="content">
        
  
  

  <div class="post">
    <h2 class="post-title"><a href="/my_blog/post/py/">python2 和 python3的区别</a></h2>
    <div class="post-meta">
      
        <span class="post-date">
          5066-08-05
        </span>

        
          
        
      

      <span class="post-author">— Written by ren nan</span>
      
    </div>

    

    

    <div class="post-content">
      <h2 id="python3的改变主要在一下几个方面">python3 经常被称为python 3000 或者 py3k。对于python的早期版本这是一个比较大的提升
python3的改变主要在一下几个方面</h2>
<h2 id="print函数">print函数</h2>
<p>在python2中使用的是print语句  而在python3中使用的是print函数
python2</p>
<pre><code>    print &quot;china&quot;
</code></pre><p>python3</p>
<pre><code>    print(&quot;china&quot;)
</code></pre><h2 id="unicode">Unicode</h2>
<p>python2 中字符串类型有：str  unicode
python3 中字符串类型有：str byte</p>
<p>python3</p>
<pre><code>&gt;&gt;&gt; 中国 = 'china' 
&gt;&gt;&gt;print(中国) 
china
</code></pre><p>python2</p>
<pre><code>&gt;&gt;&gt; str = &quot;我爱北京天安门&quot;
&gt;&gt;&gt; str
'\xe6\x88\x91\xe7\x88\xb1\xe5\x8c\x97\xe4\xba\xac\xe5\xa4\xa9\xe5\xae\x89\xe9\x97\xa8'
&gt;&gt;&gt; str = u&quot;我爱北京天安门&quot;
&gt;&gt;&gt; str
u'\u6211\u7231\u5317\u4eac\u5929\u5b89\u95e8'
</code></pre><h2 id="异常">异常</h2>
<p>python3中的处理异常也发生了改变
python中使用了as来作为关键词
except exc, e 改为 except exc as e</p>
<p>在python2中所有异常类型都可以直接抛出 但是在python3中只有继承了BaseException的对象抛出
python2异常在代码中除了表示程序错误 还做一些控制结构做的事，python3
只有在错误发生的情况下才能去用异常捕获语句来处理,让设计者更加的专注的设计程序</p>
<h2 id="xrange">xrange</h2>
<p>python2中使用的是xrange函数
python3中使用的是range函数</p>
<p>相同点：
倆者在用法上完全相同
但是xrange他返回的是一个生成器
range返回的是一个可迭代对象</p>
<p>倆者在生成很大的序列时性能的差异就会很明显的显示出来
因为range生成的是一个可迭代对象 一上来就得开辟出一大片内存空间
而xrange不会直接 生成一个可迭代对象 二十每次调用返回一个值</p>
<h2 id="多个模块的改名">多个模块的改名</h2>
<p>_winreg  改为   winreg
ConfigParser    改为	configparser
copy_reg    改为   copyreg
Queue    改为   queue
SocketServer    改为   socketserver
repr    改为   reprlib</p>
<h2 id="数据类型">数据类型</h2>
<p>1.python3中去除了long类型，只剩一种整形int 但是int和python2中的long的行为相似
2.增加了bytes类型
3.dict的keys(),items()和values()方法返回迭代器二之前的iterkeys()等函数都被废弃
同时去掉了has_key()函数，可以用in来代替</p>

    </div>
    
      
        <div class="pagination">
          <div class="pagination__title">
            <span class="pagination__title-h">Read other posts</span>
            <hr />
          </div>
          <div class="pagination__buttons">
            
              <span class="button previous">
                <a href="/my_blog/post/two/">
                  <span class="button__icon">←</span>
                  <span class="button__text">vue防止用户恶意点击按钮</span>
                </a>
              </span>
            
            
              <span class="button next">
                <a href="/my_blog/post/proceedingblog/">
                  <span class="button__text">python中muktiprocessing模块详解</span>
                  <span class="button__icon">→</span>
                </a>
              </span>
            
          </div>
        </div>
      
    


    
      
        

      
    

    </div>

      </div>

      
        <footer class="footer">
  <div class="footer__inner">
    
      <a href="/my_blog/hello/" class="logo" style="text-decoration: none;">
  
    <span class="logo__mark"><svg xmlns="http://www.w3.org/2000/svg" class="greater-icon" viewBox="0 0 44 44">
  <path fill="none" d="M15 8l14.729 14.382L15 35.367"/>
</svg>
</span>
    <span class="logo__text">Welcome To MyBlog</span>
    <span class="logo__cursor"></span>
  
</a>

      <div class="copyright">
        <span>© 2020 Powered by <a href="https://gohugo.io" target="_blank" rel="noopener">Hugo</a></span>
        <span>Theme created by <a href="https://twitter.com/panr" target="_blank" rel="noopener">panr</a></span>
      </div>
    
  </div>
</footer>

<script src="/my_blog/assets/main.js"></script>
<script src="/my_blog/assets/prism.js"></script>


      
    </div>

    
  </body>
</html>
